home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / patches / csfix.lha / csfix / Source / info.c < prev    next >
C/C++ Source or Header  |  1995-01-02  |  2KB  |  86 lines

  1. /*
  2.  | info.c   Routine to display the informational window.
  3.  */
  4.  
  5. #include <stdlib.h>
  6. #include <intuition/intuition.h>
  7.  
  8. /*----------------------------------------------------------------*/
  9. void info_show (char *title, BOOL warning, char *s1, char *s2, int seconds)
  10.   /*
  11.    | Displays the two given strings in a window with the given title
  12.    | for the given number of seconds.
  13.    | If warning is TRUE, the message is a warning and should be displayed
  14.    | in a different colour.
  15.    */
  16. {
  17.   struct IntuiText text1, text2;
  18.   struct NewWindow nwindow;
  19.   struct Window *window = NULL;
  20.   int len, len1, len2;
  21.  
  22.   text1.FrontPen = 1;
  23.   text1.BackPen  = 0;
  24.   text1.DrawMode = JAM1;
  25.   text1.LeftEdge = 16;
  26.   text1.TopEdge  = 7;
  27.   text1.ITextFont = NULL;
  28.   text1.IText    = s1;
  29.   text1.NextText = &text2;
  30.  
  31.   text2.FrontPen = 1;
  32.   text2.BackPen  = 0;
  33.   text2.DrawMode = JAM1;
  34.   text2.LeftEdge = 16;
  35.   text2.TopEdge  = 19;
  36.   text2.ITextFont = NULL;
  37.   text2.IText    = s2;
  38.   text2.NextText = NULL;
  39.  
  40.   nwindow.LeftEdge    = 200;
  41.   nwindow.TopEdge     = 75;
  42.   nwindow.Width       = 200;
  43.   nwindow.Height      = 45;
  44.   nwindow.DetailPen   = -1;
  45.   nwindow.BlockPen    = -1;
  46.   nwindow.Title       = title;
  47.   nwindow.Flags       = ACTIVATE;
  48.   nwindow.IDCMPFlags  = 0;
  49.   nwindow.Type        = WBENCHSCREEN;
  50.   nwindow.FirstGadget = NULL;
  51.   nwindow.CheckMark   = NULL;
  52.   nwindow.Screen      = NULL;
  53.   nwindow.BitMap      = NULL;
  54.   nwindow.MinWidth    = 0;
  55.   nwindow.MinHeight   = 0;
  56.   nwindow.MaxWidth    = 0;
  57.   nwindow.MaxHeight   = 0;
  58.  
  59.   if (warning)
  60.   {
  61.     text1.FrontPen = 3;
  62.     text2.FrontPen = 3;
  63.   }
  64.   len = 20;
  65.   len1 = strlen( s1 );
  66.   len2 = strlen( s2 );
  67.   if (len1 > len)
  68.     len = len1;
  69.   if (len2 > len)
  70.     len = len2;
  71.   if (len > 20)
  72.     nwindow.Width = 40 + len * 8;
  73.   if ((nwindow.LeftEdge + nwindow.Width) > 620)
  74.     nwindow.Width = 620 - nwindow.LeftEdge;
  75.  
  76.   window = (struct Window *) OpenWindow (&nwindow);
  77.   if (window == NULL) goto End;
  78.  
  79.   PrintIText (window->RPort, &text1, window->BorderLeft, window->BorderTop);
  80.   ScreenToFront( window->WScreen );
  81.  
  82.   sleep (seconds);
  83.   CloseWindow (window);
  84.  
  85. End:
  86. }